#ifndef __RINGBUFF_H_
#define __RINGBUFF_H_

#include "stdint.h" //uint8_t 等
typedef unsigned char  u8;
typedef unsigned short u16;

#define  RINGBUFF_LEN  		1024  
typedef struct
{
    u16 Head;           
    u16 Tail;
    u16 Lenght;
    u8  Ring_Buff[RINGBUFF_LEN];
}RingBuff_t;

typedef struct
{
	RingBuff_t ringBuff;
	void    (*Init)   (void *pFIFO);//可以自己给自己传参吗？？不可以！说没有定义！我们用void*//#技术#//
	uint8_t (*write)  (void *pFIFO,uint8_t data);//写一个数据到FIFO
	uint8_t (*getlen) (void *pFIFO);//获得长度 0标识空空如也 +标识有内容的
	uint8_t (*readone)(void *pFIFO,uint8_t *data);//读一个数据出来
	uint8_t (*readall)(void *pFIFO,uint8_t **data,u16 *len);//全部读出来
}FIFO_Type;

void FIFO_Type_Init(FIFO_Type *pFIFO);

extern FIFO_Type FIFO1;



#endif
